package cn.com.huzo.model.entities.tech;

import huzofw.model.entities.BaseEntity;
import huzofw.model.entities.IAggregateRoot;
import java.io.Serializable;
import java.util.List;
import org.apache.commons.lang3.builder.EqualsBuilder;
import org.apache.commons.lang3.builder.ToStringBuilder;

/**
 * 均码单耗明细实体类
 *
 * @author 吴旭
 */
public class PieceYardageLinesEntity extends BaseEntity implements Serializable, IAggregateRoot {

    private static final long serialVersionUID = -6886021014514922563L;
    private String LinesId;
    private Long HeaderId;
    private Long MaterialId;
    private Long UomId;                         // 单位
    private String UomName;
    private Integer OrderNo;                    // 显示顺序
    private String MaterialCode;
    private String MaterialName;                // 材料名
    private String SupplierName;                // 供应商
    private String Specification;               // 规格
    private String YarnCount;                   // 纱支
    private String FabricWidth;                 // 幅宽
    private String GramWeight;                  // 克重
    private String MaterialComposition;         // 材料成分
    private String MeshBeltOpening;             // 织带开度
    private String PartOfNeed;                  // 用料部位
    private Double CustomerPieceYardage;        // 客户用量
    private Double FactoryPieceYardage;         // 工厂用量
    private Double SuitCutPieceYardage;         // 套裁用量
    private Long MaterialSourceTypeId;          // 材料来源
    private String MaterialSourceTypeName;
    private String Description;                 // 备注
    private String ImportedBomLinesId;          // 引入的单耗明细标识
    private Object ColourSchema;                // 配色方案
    private List<PieceYardageLinesColourSchemaEntity> ColourSchemaList;   // 用于保存材料配色
    private Object SizeGrade;                   // 全码用量
    private List<PieceYardageLinesSizeGradeEntity> SizeGradeList;         // 用于保存修改过的各个尺码用量
    private Boolean MrpQuotedFlag;              // 被调达引用标记（决定是否可删除）
    private Boolean PoQuotedFlag;               // 被采购引用标记（决定是否可删除）

    public String getLinesId() {
        return LinesId;
    }

    public Long getHeaderId() {
        return HeaderId;
    }

    public Long getMaterialId() {
        return MaterialId;
    }

    public Integer getOrderNo() {
        return OrderNo;
    }

    public String getMaterialCode() {
        return MaterialCode;
    }

    public String getMaterialName() {
        return MaterialName;
    }

    public String getSupplierName() {
        return SupplierName;
    }

    public String getSpecification() {
        return Specification;
    }

    public String getYarnCount() {
        return YarnCount;
    }

    public String getFabricWidth() {
        return FabricWidth;
    }

    public String getGramWeight() {
        return GramWeight;
    }

    public Long getUomId() {
        return UomId;
    }

    public String getUomName() {
        return UomName;
    }

    public String getMaterialComposition() {
        return MaterialComposition;
    }

    public String getMeshBeltOpening() {
        return MeshBeltOpening;
    }

    public String getPartOfNeed() {
        return PartOfNeed;
    }

    public Double getCustomerPieceYardage() {
        return CustomerPieceYardage;
    }

    public Double getFactoryPieceYardage() {
        return FactoryPieceYardage;
    }

    public Double getSuitCutPieceYardage() {
        return SuitCutPieceYardage;
    }

    public Long getMaterialSourceTypeId() {
        return MaterialSourceTypeId;
    }

    public String getMaterialSourceTypeName() {
        return MaterialSourceTypeName;
    }

    public String getDescription() {
        return Description;
    }

    public String getImportedBomLinesId() {
        return ImportedBomLinesId;
    }

    public Object getColourSchema() {
        return ColourSchema;
    }

    public List<PieceYardageLinesColourSchemaEntity> getColourSchemaList() {
        return ColourSchemaList;
    }

    public Object getSizeGrade() {
        return SizeGrade;
    }

    public List<PieceYardageLinesSizeGradeEntity> getSizeGradeList() {
        return SizeGradeList;
    }

    public Boolean getMrpQuotedFlag() {
        return MrpQuotedFlag;
    }

    public Boolean getPoQuotedFlag() {
        return PoQuotedFlag;
    }

    public void setLinesId(String LinesId) {
        this.LinesId = LinesId;
    }

    public void setHeaderId(Long HeaderId) {
        this.HeaderId = HeaderId;
    }

    public void setMaterialId(Long MaterialId) {
        this.MaterialId = MaterialId;
    }

    public void setOrderNo(Integer OrderNo) {
        this.OrderNo = OrderNo;
    }

    public void setMaterialCode(String MaterialCode) {
        this.MaterialCode = MaterialCode;
    }

    public void setMaterialName(String MaterialName) {
        this.MaterialName = MaterialName;
    }

    public void setSupplierName(String SupplierName) {
        this.SupplierName = SupplierName;
    }

    public void setSpecification(String Specification) {
        this.Specification = Specification;
    }

    public void setYarnCount(String YarnCount) {
        this.YarnCount = YarnCount;
    }

    public void setFabricWidth(String FabricWidth) {
        this.FabricWidth = FabricWidth;
    }

    public void setGramWeight(String GramWeight) {
        this.GramWeight = GramWeight;
    }

    public void setUomId(Long UomId) {
        this.UomId = UomId;
    }

    public void setUomName(String UomName) {
        this.UomName = UomName;
    }

    public void setMaterialComposition(String MaterialComposition) {
        this.MaterialComposition = MaterialComposition;
    }

    public void setMeshBeltOpening(String MeshBeltOpening) {
        this.MeshBeltOpening = MeshBeltOpening;
    }

    public void setPartOfNeed(String PartOfNeed) {
        this.PartOfNeed = PartOfNeed;
    }

    public void setCustomerPieceYardage(Double CustomerPieceYardage) {
        this.CustomerPieceYardage = CustomerPieceYardage;
    }

    public void setFactoryPieceYardage(Double FactoryPieceYardage) {
        this.FactoryPieceYardage = FactoryPieceYardage;
    }

    public void setSuitCutPieceYardage(Double SuitCutPieceYardage) {
        this.SuitCutPieceYardage = SuitCutPieceYardage;
    }

    public void setMaterialSourceTypeId(Long MaterialSourceTypeId) {
        this.MaterialSourceTypeId = MaterialSourceTypeId;
    }

    public void setMaterialSourceTypeName(String MaterialSourceTypeName) {
        this.MaterialSourceTypeName = MaterialSourceTypeName;
    }

    public void setDescription(String Description) {
        this.Description = Description;
    }

    public void setImportedBomLinesId(String ImportedBomLinesId) {
        this.ImportedBomLinesId = ImportedBomLinesId;
    }

    public void setColourSchema(Object ColourSchema) {
        this.ColourSchema = ColourSchema;
    }

    public void setColourSchemaList(List<PieceYardageLinesColourSchemaEntity> ColourSchemaList) {
        this.ColourSchemaList = ColourSchemaList;
    }

    public void setSizeGrade(Object SizeGrade) {
        this.SizeGrade = SizeGrade;
    }

    public void setSizeGradeList(List<PieceYardageLinesSizeGradeEntity> SizeGradeList) {
        this.SizeGradeList = SizeGradeList;
    }

    public void setMrpQuotedFlag(Boolean MrpQuotedFlag) {
        this.MrpQuotedFlag = MrpQuotedFlag;
    }

    public void setPoQuotedFlag(Boolean PoQuotedFlag) {
        this.PoQuotedFlag = PoQuotedFlag;
    }

    /**
     * {@inheritDoc}
     */
    @Override
    public boolean equals(Object o) {
        if (this == o) {
            return true;
        }
        if (!(o instanceof PieceYardageLinesEntity)) {
            return false;
        }

        final PieceYardageLinesEntity that = (PieceYardageLinesEntity) o;

        return new EqualsBuilder()
                .append(this.getLinesId(), that.getLinesId())
                .isEquals();
    }

    /**
     * {@inheritDoc}
     */
    @Override
    public int hashCode() {
        int result = 17;
        result = 31 * result + this.getLinesId().hashCode();

        return result;
    }

    /**
     * {@inheritDoc}
     */
    @Override
    public String toString() {
        return ToStringBuilder.reflectionToString(this);
    }
}
